Machines such as computers, telephones, audio/visual equipment, etc., employ power management schemes to govern the use of energy. Battery-powered machines have a finite amount of energy stored between charges, and these machines generally attempt to use the energy in a way that strikes a balance between providing functionality and maintaining longevity of the charge. Electricity is expensive, so even machines that are connected to power sources manage their use of energy in order to reduce the cost of operation. A large server farm may draw several megawatts of power, so managing energy consumption may become an increasingly prominent issue, as the cost of producing electricity increases.
A machine may include various devices that draw power, such as a disk, network card, processor, monitor, etc. Power management is normally based on figuring out when each of these devices is to be turned on or off. For example, a power management rule for a computer might state that the monitor is turned off if the keyboard has not been used for ten continuous minutes, since ten minutes of keyboard inactivity suggest that there may be no one present at the machine to look at the monitor. Similar rules may govern disk drives or network cards. If a device has been powered off and then a program makes a request that involves the device, the device is generally powered back on to service the request. This power management technique does not take into account factors, such as whether the program merits the use of the power that would be involved in servicing the program's request. Moreover, when a machine is being powered by a battery, this technique tends to reward early requests for power at the expense of requests that might arise later, even if the later requests would be more meritorious uses of energy than the earlier requests. Power management schemes generally lack the infrastructure to make determinations about power usage based on a rich or complex set of factors.